Handle netdev secondary addresses and labels
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jan 2008 09:43:44 +0000 (09:43 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 8 Jan 2008 09:43:44 +0000 (09:43 +0000)
Fix the network-bridge logic to correctly transfer secondary IP
address from $netdev to $bridge.

e.g. if you add an secondary address/label/alias with:

  $> ip addr add 172.31.0.200/24 dev eth0 label eth0:00

then, "ip addr show dev eth0" gives e.g.:

  inet 172.31.0.10/24 brd 172.31.0.255 scope global eth0
  inet 172.31.0.200/24 scope global secondary eth0:00

and transfer_addrs() tries to execute:

  ip addr add 172.31.0.10/24 brd 172.31.0.255 scope global dev tmpbridge
  ip addr add 172.31.0.200/24 scope global secondary dev tmpbridge:00

which causes the sript to fail because:

  1) The device tmpbridge:00 doesn't exist
  2) The "secondary" flag isn't valid

This patch fixes the sed commands to instead give:

  ip addr add 172.31.0.10/24 brd 172.31.0.255 scope global dev tmpbridge label tmpbridge
  ip addr add 172.31.0.200/24 scope global dev tmpbridge label tmpbridge:00

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
tools/examples/network-bridge

index d558b9f55267661e441a6c1cf9cd2f98db155f9e..9244f0a75cd33319a3c30b1ab6f668bf9bf766c6 100755 (executable)
@@ -121,7 +121,8 @@ transfer_addrs () {
     ip addr show dev ${src} | egrep '^ *inet ' | sed -e "
 s/inet/ip addr add/
 s@\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+/[0-9]\+\)@\1@
-s/${src}/dev ${dst}/
+s/${src}/dev ${dst} label ${dst}/
+s/secondary//
 " | sh -e
     # Remove automatic routes on destination device
     ip route list | sed -ne "